# OOP Object Oriented Programming 面向对象编程
# 面向对象编程 VS 面向过程编程
# OOP 特点： 封装 继承 多态

""" 按照目前理解描写
封装：一般指代方法，就是类里面的方法，作为使用，只需要知道怎么用，返回什么。并不需要理解里面是怎么进行运算的
继承：类有父类子类，子类可以拥有父类的属性和方法
多态：一个父类有多个子类，多个子类继承的父类方法可以重写，也就是一个方法因为归属的类不同而有不同的作用。
    比如学生类 -- 大学生类 、 小学生类。 其中写作业：大学生.写作业（"高等数学"） 小学生.写作业（“一元二次方程”）
"""

# 这里就需要创建类，然后让类实体化变成对象。 类就是对一类事物的大致规划。比如你我他是实例，我们的类是人类。
# 人类都有姓名，性别，年龄等。具体化实体化到你我他，就是 叶平安 女 18岁，...

# 类命名方法 pascal命名法 驼峰命名，首字母大写。
# 类声明 class 类名
class CuteCat:
    # 这里面定义了 可爱的猫 这个类

    # 构造函数 固定格式
    def __init__(self,cat_name):
        # 参数1 self，固定值，表示对象本身，归属于对象特殊的属性，就要用到self.属性

        self.name = cat_name #这个name才是对象的属性
        age = 19 # 这个age只是类里面的属性

    def think(self):
        print("猫猫在思考！")
cat1 = CuteCat("ppt")
print(cat1.name)
cat1.think()

